package com.smartleanx.module.hrm.service.salarynotice;

import com.smartleanx.framework.common.pojo.PageResult;
import com.smartleanx.framework.customfield.core.service.bo.inner.CustomFieldDataBaseBO;
import com.smartleanx.module.hrm.controller.app.salarynotice.vo.AppSalaryNoticePageReqVO;
import com.smartleanx.module.hrm.controller.app.salarynotice.vo.AppSalaryNoticeSaveReqVO;
import com.smartleanx.module.hrm.dal.dataobject.salarynotice.SalaryNoticeDO;
import com.smartleanx.module.hrm.service.salarynotice.bo.SalaryNoticeSaveBO;

import javax.validation.Valid;
import java.util.Collection;

/**
 * 员工工资条通知 Service 接口
 *
 * @author zhangchp
 */
public interface SalaryNoticeService {

    /**
     * 创建员工工资条通知
     *
     * @param saveBOs 创建信息
     */
    void createNotice(@Valid Collection<SalaryNoticeSaveBO> saveBOs, Collection<CustomFieldDataBaseBO> fieldDataList);

    /**
     * 更新员工工资条通知
     *
     * @param updateReqVO 更新信息
     */
    void updateNotice(@Valid AppSalaryNoticeSaveReqVO updateReqVO);

    /**
     * 删除员工工资条通知
     *
     * @param payrollDetailId 编号
     */
    void deleteNoticeByPayrollDetailId(Long payrollDetailId);

    /**
     * 获得员工工资条通知
     *
     * @param id 编号
     * @return 员工工资条通知
     */
    SalaryNoticeDO getNotice(Long id);

    /**
     * 获得员工工资条通知分页
     *
     * @param pageReqVO 分页查询
     * @return 员工工资条通知分页
     */
    PageResult<SalaryNoticeDO> getNoticePage(AppSalaryNoticePageReqVO pageReqVO);



}